﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CalculadoraDeMatrizes
{
    class M_Multiplicar : MatrizBase
    {
        public override void Calcular(TextBox[,] matriz1, TextBox[,] matriz2)
        {
            base.Calcular(matriz1, matriz2);
            TextBox[,] Resultado = Gerador.getInstance().getMatriz3();
            double[,] result = new double[matriz1.GetLength(0), matriz2.GetLength(1)];

            if (podeCalcularBool)
            {
                for (int i = 0; i < matriz1.GetLength(0); i++)
                {
                    for (int j = 0; j < matriz2.GetLength(1); j++)
                    {
                        for (int k = 0; k < matriz2.GetLength(0); k++)
                        {
                            result[i, j] += Convert.ToDouble(matriz1[i, k].Text) * Convert.ToDouble(matriz2[k, j].Text);
                            Resultado[i, j].Text = result[i, j].ToString();
                        }
                    }
                }
            }
        }

        public override bool podeCalcular(TextBox[,] matriz1, TextBox[,] matriz2)
        {
            if (matriz1.GetLength(1) == matriz2.GetLength(0))
                return true;

            MessageBox.Show("Tamanho da coluna da 1ª matriz tem que ser igual ao da linha da 2ª.", "Erro na Matriz 3");
            return false;
        }
    }
}